#ifndef TOOLS_IMAGE_SAVER_HPP
#define TOOLS_IMAGE_SAVER_HPP

#include <opencv2/opencv.hpp>
#include <string>
#include <vector>

namespace toolsLib
{

class ImageSaver
{
  public:
    ImageSaver();
    ~ImageSaver();

    /**
     * @brief 保存图像到指定路径
     * @param image 要保存的图像
     * @param file_path 保存的文件路径（包含文件名和扩展名）
     * @return 成功返回 true，失败返回 false
     */
    bool saveImage(const cv::Mat& image, const std::string& file_path);

    /**
     * @brief 检查文件扩展名是否为支持的图像格式
     * @param file_path 文件路径
     * @return 是支持的格式返回 true，否则返回 false
     */
    bool isSupportedFormat(const std::string& file_path);

  private:
    /**
     * @brief 初始化支持的图像扩展名列表
     */
    void initializeSupportedExtensions();
    std::vector<std::string> supported_extensions_;
};

}  // namespace toolsLib

#endif  // TOOLS_IMAGE_SAVER_HPP

